#!/bin/bash

# 定义颜色代码
RED='\e[31m'      # 红色
GREEN='\e[32m'    # 绿色
YELLOW='\e[33m'   # 黄色
BLUE='\e[34m'     # 蓝色
MAGENTA='\e[35m'  # 紫色
CYAN='\e[36m'     # 青色
RESET='\e[0m'     # 重置颜色

# 定义公共路径变量
PROJECT_DIR="/etc/nginx/html/project"
WEB_DIR_NAME="vllm"
WEB_DIR="$PROJECT_DIR/$WEB_DIR_NAME"
SOURCE_ZIP="$WEB_DIR_NAME.zip"
TARGET_ZIP="$PROJECT_DIR/$WEB_DIR_NAME.zip"

# 检查 WEB_DIR 是否存在
if [ ! -d "$WEB_DIR" ]; then
    echo -e "${RED}错误：目录 $WEB_DIR 不存在！${RESET}"
    exit 1
fi

# 1. 将 /usr/local/nginx/html/project/web 目录通过打压缩包的方式备份（静默模式）
backup_file="$PROJECT_DIR/${WEB_DIR_NAME}_backup_$(date +%Y%m%d%H%M%S).zip"
echo -e "${BLUE}正在备份 $WEB_DIR 到 $backup_file ...${RESET}"
zip -r -q "$backup_file" "$WEB_DIR"
if [ $? -eq 0 ]; then
    echo -e "${GREEN}备份成功：$backup_file${RESET}"
else
    echo -e "${RED}备份失败，请检查目录是否存在或权限是否足够。${RESET}"
    exit 1
fi

# 2. 删除 /usr/local/nginx/html/project/web 目录
echo -e "${RED}正在删除 $WEB_DIR ...${RESET}"
rm -rf "$WEB_DIR"
if [ $? -eq 0 ]; then
    echo -e "${GREEN}删除成功：$WEB_DIR${RESET}"
else
    echo -e "${RED}删除失败，请检查目录是否存在或权限是否足够。${RESET}"
    exit 1
fi

# 3. 将当前目录下的 web.zip，拷贝到 /usr/local/nginx/html/project 目录下
echo -e "${BLUE}正在拷贝 $SOURCE_ZIP 到 $TARGET_ZIP ...${RESET}"
cp "$SOURCE_ZIP" "$TARGET_ZIP"
if [ $? -eq 0 ]; then
    echo -e "${GREEN}拷贝成功：$TARGET_ZIP${RESET}"
else
    echo -e "${RED}拷贝失败，请检查文件是否存在或权限是否足够。${RESET}"
    exit 1
fi

# 4. 解压 web.zip（静默模式，不显示解压过程）
echo -e "${BLUE}正在解压 $TARGET_ZIP ...${RESET}"
unzip -q "$TARGET_ZIP" -d "$PROJECT_DIR/"
if [ $? -eq 0 ]; then
    echo -e "${GREEN}解压成功：$TARGET_ZIP${RESET}"
else
    echo -e "${RED}解压失败，请检查文件是否存在或权限是否足够。${RESET}"
    exit 1
fi

echo -e "${MAGENTA}所有操作已完成，前端部署成功！${RESET}"